libobs_wrapper\data\properties\types/
text.rs1use getters0::Getters;
2
3use crate::data::properties::{get_enum, macros::assert_type, ObsTextInfoType, ObsTextType};
4
5use super::PropertyCreationInfo;
6
7#[derive(Debug, Getters, Clone)]
8#[skip_new]
9pub struct ObsTextProperty {
10 name: String,
11 description: Option<String>,
12 monospace: bool,
13 text_type: ObsTextType,
14 info_type: ObsTextInfoType,
15 word_wrap: bool,
16}
17
18impl From<PropertyCreationInfo> for ObsTextProperty {
19 fn from(
20 PropertyCreationInfo {
21 name,
22 description,
23 pointer,
24 }: PropertyCreationInfo,
25 ) -> Self {
26 assert_type!(Text, pointer);
27
28 let info_type = get_enum!(pointer, text_info_type, ObsTextInfoType);
29 let text_type = get_enum!(pointer, text_type, ObsTextType);
30
31 let monospace = unsafe { libobs::obs_property_text_monospace(pointer) };
32 let word_wrap = unsafe { libobs::obs_property_text_info_word_wrap(pointer) };
33
34 ObsTextProperty {
35 name,
36 description,
37 monospace,
38 text_type,
39 info_type,
40 word_wrap,
41 }
42 }
43}